TypeScript中‘prop:TypeOrInterface’与‘prop<TypeOrInterface>’的区别?
TypeScript中
prop:TypeOrInterface与prop<TypeOrInterface>的区别 prop:TypeOrInterface:固定类型注解
这是TypeScript最基础的类型标注方式,用来明确变量、函数参数或对象属性的具体类型,约束值的结构必须匹配TypeOrInterface的定义。比如:interface User { name: string; age: number; } // 给变量标注User类型 const user: User = { name: "Alice", age: 28 }; // 给函数参数标注User类型 function printUser(user: User) { console.log(user.name); }加了这个注解后,TypeScript会严格检查对应的值是否符合指定类型结构,比如给
user赋值时少了age属性就会直接报错。prop<TypeOrInterface>:泛型语法
这是泛型的用法,核心是让代码支持多种类型同时保持类型安全,相当于定义一个“类型占位符”,在使用时再传入具体类型。常见使用场景:- 泛型函数:
// T是泛型参数,代表任意类型 function identity<T>(arg: T): T { return arg; } // 使用时指定为string类型 const str = identity<string>("hello"); // 也可以让TS自动推断类型 const num = identity(123); - 泛型类/接口:
interface Container<T> { value: T; } // 创建一个存放string类型的容器实例 const strContainer: Container<string> = { value: "test" };
泛型的优势是复用代码,比如上面的
identity函数可以处理字符串、数字等任意类型,同时还能保证输入输出类型一致。- 泛型函数:
核心区别
prop:TypeOrInterface是直接给值绑定一个固定类型,属于“静态”的类型约束;而prop<TypeOrInterface>是通过泛型实现类型的动态适配,让同一套代码能兼容多种类型,是更灵活的类型复用方案。
内容的提问来源于stack exchange,提问作者Lucas Santana
相关产品推荐
相关产品推荐

