多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## interface接口 定义一种规范,约束。 ``` // 情况一: interface DataType { name: string, age: number } // info对象中,属性不多不少,需要和接口定义数据类型(DataType)一致。 const info: DataType = { name: 'abc', age: 18 } ``` ``` // 情况二: interface DataType { name: string, age?: number } // info对象中,属性age可选属性,可有可无。 const info: DataType = { name: 'abc' } ``` ## type定义 给类型起一个新名称(别名),和interface使用基本一样 ``` type DataType { name: string, age: number } // info对象中,属性不多不少,需要和接口定义数据类型(DataType)一致。 const info: DataType = { name: 'abc', age: 18 } ``` ## typeof与keyof ``` type DataType { name: string, age: number } const info: DataType = { name: 'abc', age: 18 } type myKey = keyof info // 报错,可改为为 type myKey = keyof typeof info type myKey = keyof DataType // 获取定义类型的key值 ``` ## 泛型(不确定传入类型) ``` // T: 不确定类型 function fn<T>(params: T):T{ // 传入一个T型,返回一个T型 return params; } const str = fn<string>('字符串') const num = fn<number>(100) ```