考虑下一个简化的例子:
type Ref<T extends {id: string}> = T['id']
此类型表示ref对象,typescripts认为这是字符串(这是正确的)。 但是如何让TS认为它是两个不同的字符串? 所以下一个例子是不正确的:
let refBlog: Ref<Blog> = ...
let refUser: Ref<User> = ...
// TS allows this as both a strings:
refBlog = refUser
但这在逻辑上是不正确的。是否可以在TS中为它创建编译检查?