泛型类型别名
/* 泛型类型别名 */
// 接口与别名类似,用法一致
type ListApi_4202<T> = {
data: T[]
error_message: string
state_code: number
} | T[] //但是区别在于别名可以表达更复杂的类型,interface无法表达复杂的类型
// 使用接口时指定类型
let listResult_4202: ListApi_4202<{ name: string, age: number }>
// 定义变量
let firstItem_4202 = listResult_4202.data[0] // 变量推论出来是{ name: string, age: number}
答案
解析
接口既可以 extends 和 implements 其他类型,也可以被其他类型 extends 和 implements。
类型别名既不可以 extends 和 implements 其他类型。也不可以被其他类型 extends 和 implements。
所以选项 D 是错误语法。根据已有知识可以看出,选项 A B C 都是正确的。