泛型类型别名

  1. /* 泛型类型别名 */
  2. // 接口与别名类似,用法一致
  3. type ListApi_4202<T> = {
  4. data: T[]
  5. error_message: string
  6. state_code: number
  7. } | T[] //但是区别在于别名可以表达更复杂的类型,interface无法表达复杂的类型
  8. // 使用接口时指定类型
  9. let listResult_4202: ListApi_4202<{ name: string, age: number }>
  10. // 定义变量
  11. let firstItem_4202 = listResult_4202.data[0] // 变量推论出来是{ name: string, age: number}

image.png

答案

A B C

解析

接口既可以 extends 和 implements 其他类型,也可以被其他类型 extends 和 implements。
类型别名既不可以 extends 和 implements 其他类型。也不可以被其他类型 extends 和 implements。
所以选项 D 是错误语法。根据已有知识可以看出,选项 A B C 都是正确的。