Sur*_*esh 13 typescript typescript-generics
在typescipt中,用作类型参数时T和之间有什么区别。T extends unknown例如:
function check<T extends unknown>(x: T): T {
return x;
}
Run Code Online (Sandbox Code Playgroud)
与
function check<T>(x: T): T {
return x;
}
Run Code Online (Sandbox Code Playgroud)
他们在行为方面有什么区别吗?
我相信这些或多或少是等效的:
\nhttps://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-0.html#new-unknown-top-type
\n\n\n\n
unknown是 any 的类型安全对应项。任何东西都可以分配给unknown,但是unknown\xe2\x80\x99 不能分配给除了它本身之外的任何东西,并且any没有类型断言或基于控制流的缩小。unknown同样,如果没有首先断言或缩小到更具体的类型,则不允许对 进行任何操作。