如何在TypeScript中定义Partials数组?

sam*_*ker 4 typescript typescript-typings typescript2.0

例如,

type User = {
  first_name: string,
  last_name: string,
  notes: string
}
Run Code Online (Sandbox Code Playgroud)

以下哪项可行?

const users:Partial<User>[] = [{first_name: "Name"}]; // A

const users:Partial<User[]> = [{first_name: "Name"}]; // B

const users:[Partial<User>] = [{first_name: "Name"}]; // C
Run Code Online (Sandbox Code Playgroud)

奇怪的是,所有这些在编译时似乎都是有效的TypeScript.

提前致谢.

Est*_*ask 8

正确的方法是

const users:Partial<User>[] = [{first_name: "Name"}];
Run Code Online (Sandbox Code Playgroud)

Partial<User[]>意味着它具有一些Array属性.

[Partial<User>]意味着它是一个User具有1个元素的partial数组.

奇怪的是,所有这些在编译时似乎都是有效的TypeScript

语法有效但类型不是.由于类型不兼容,预计Partial<User[]>会导致错误.