frontend-interview
frontend-interview copied to clipboard
什么是可调用类型注解
TypeScript提供了很多数据类型,通过类型对变量进行限制,称之为类型注解,使用类型注解后,就不能够随意变更变量的类型。
我们可以使用类型别名或者接口来表示一个可被调用的类型注解:
interface ReturnString {
(): string;
}
它可以表示一个返回值为 string
的函数:
declare const foo: ReturnString;
const bar = foo(); // bar 被推断为一个字符串。
可调用类型注解是指描述函数的类型,一般用于推断实例,多种参数组合函数的函数头。
interface foo{
(x: string): string
(x: number): number
}
interface bar{
new (s: string): string
}
TypeScript提供了很多数据类型,类型声明空间中可用的任何内容都可以用作类型注解。
你可以使用类型别名或者接口来表示一个可被调用的类型注解。
类型别名
type flag = string | number;
function hello(value: flag) {}
接口
interface Speakable {
speak(): void;
readonly lng: string; //readonly表示只读属性 后续不可以更改
name?: string; //?表示可选属性
}
let speakman: Speakable = {
// speak() {}, //少属性会报错
name: "hello",
lng: "en",
age: 111, //多属性也会报错
};
可调用的类型注解一般用于函数类型以及函数的入参和出参的限制,使用如下:
interface ReturnString {
(): string;
}
declare const foo: ReturnString;
const bar = foo(); // bar 被推断为一个字符串。
可调用类型注解一般用于描述一个函数的ts类型定义,类型定义规定了函数的入参以及返回值的基本类型格式
函数的注解方式
1.函数声明的注解方式
function test(x: number, y: number): number {
return x + y;
}
2.函数表达式的注解方式
let hello: (x: number, y: number) => number = (x, y) => x + y;
3.函数的接口注解方式
interface Fun {
(x: number, y: number): number;
}
let world: Fun = (x, y) => x + y;