TS 实现去除联合类型('123' | number | boolean | 123)中的第一项
时间: 2023-03-02 11:20:34 浏览: 680
可以使用TypeScript的内置类型操作来实现去除联合类型中的第一项。具体地,可以使用`Exclude`类型来实现。
`Exclude`类型接受两个类型参数,第一个参数是需要被排除的类型,第二个参数是待筛选的联合类型。它会返回一个新的联合类型,其中排除了第一个参数所代表的类型。
在本题中,需要排除的是字符串类型`'123'`。因此,可以使用`Exclude<'123' | number | boolean | 123, '123'>`来实现去除字符串类型`'123'`,返回的类型为`number | boolean | 123`。
示例代码如下:
```typescript
type MyType = Exclude<'123' | number | boolean | 123, '123'>;
// MyType 的类型为 number | boolean | 123
```
相关问题
不能将类型“(value: string | number) => boolean”分配给类型“(value: string | number) => value is TabsItem”。 签名“(value: string | number): boolean”必须为类型谓词。
这个报错的意思是无法将一个返回值为 boolean 类型的函数赋值给一个类型谓词(Type Predicate)。
在 TypeScript 中,类型谓词是一种特殊的类型判断方式,可以用来缩小变量的类型范围。例如:
```typescript
function isString(value: any): value is string {
return typeof value === 'string';
}
function exampleFunc(value: any) {
if (isString(value)) {
// 在这个代码块中,value 的类型已经被缩小为 string 类型
console.log(value.length);
}
}
```
您的代码中,似乎有一个函数返回值为 boolean 类型,但是被当做了类型谓词使用,导致 TypeScript 报错。您可以检查一下代码,看看是不是出现了这样的情况。如果您需要使用类型谓词,请确保函数的返回值类型为 `value is SomeType`。
Invalid prop: type check failed for prop "value". Expected Array | Object | String | Number, got Boolean with value true.
这个错误提示是因为你给一个期望是数组、对象、字符串或数字的属性传入了一个布尔值true。根据错误提示,我推测你可能在使用一个组件时给了一个类型不匹配的属性值。你可以检查一下你的代码,看看在哪个组件中给了这个属性传入了布尔值true,然后根据需要修改为合适的类型。如果你能提供更多的代码和上下文,我可以帮助你更准确地解决这个问题。
阅读全文