Typescript 如何使用不完整类型
如果不创建新的接口/类型,也不使类型定义中的所有字段都是可选的,我可以引用一个类型而不包括它的所有必需字段吗 下面是一个问题示例:Typescript 如何使用不完整类型,typescript,intellisense,typescript-typings,Typescript,Intellisense,Typescript Typings,如果不创建新的接口/类型,也不使类型定义中的所有字段都是可选的,我可以引用一个类型而不包括它的所有必需字段吗 下面是一个问题示例: interface Test { one: string; two: string; } _.findWhere<Test, Test>(TestCollection, { one: 'name' }); 我想使用T作为properties参数的类型,因为它已经具有我想要的类型信息,但尝试这样做会导致此typescript错误:
interface Test {
one: string;
two: string;
}
_.findWhere<Test, Test>(TestCollection, {
one: 'name'
});
我想使用T
作为properties参数的类型,因为它已经具有我想要的类型信息,但尝试这样做会导致此typescript错误:
类型为'{one:string;}'
的参数不能分配给的参数
键入“测试”。类型'{one:string;}'
中缺少属性'two'
是否有一些额外的语法允许我根据需要有效地将one
和two
字段设置为可选?如下所示:
_.findWhere<Test, Test?>(TestCollection, {
one: 'name'
});
\u.findWhere(TestCollection{
一:“名字”
});
我希望autocomplete,当我使用错误的类型信息时,它会提醒我(如果提供了数字,则为e.x.字符串)
这种语言存在吗?在这种情况下,我必须创建一个新类型吗?是否需要将所有字段都设置为可选?TypeScript中尚不存在此功能 根据Ryan Cavanaugh分享的帖子,最新的消息是该功能已经添加,并将在不久的将来在未来的版本中发布(
2.2.x
?)
从图中可以看出:
// Example from initial report
interface Foo {
simpleMember: number;
optionalMember?: string;
objectMember: X; // Where X is a inline object type, interface, or other object-like type
}
// This:
var foo: Partial<Foo>;
// Is equivalent to:
var foo: {simpleMember?: number, optionalMember?: string, objectMember?: X};
// Partial<T> in that PR is defined as this:
// Make all properties in T optional
interface Partial<T> {
[P in keyof T]?: T[P];
}
//初始报告中的示例
接口Foo{
simpleMember:数字;
可选成员?:字符串;
objectMember:X;//其中X是内联对象类型、接口或其他类似对象的类型
}
//这:
var-foo:部分;
//相当于:
var foo:{simpleMember?:number,optionalMember?:string,objectMember?:X};
//该PR中的部分定义如下:
//将T中的所有属性设置为可选
界面部分{
[P在keyof T]?:T[P];
}
因此,通过将MyType
转换为Partial
,可以使类型成为不完整类型
// Example from initial report
interface Foo {
simpleMember: number;
optionalMember?: string;
objectMember: X; // Where X is a inline object type, interface, or other object-like type
}
// This:
var foo: Partial<Foo>;
// Is equivalent to:
var foo: {simpleMember?: number, optionalMember?: string, objectMember?: X};
// Partial<T> in that PR is defined as this:
// Make all properties in T optional
interface Partial<T> {
[P in keyof T]?: T[P];
}