![](/img/trans.png)
[英]TypeScript - How to define Function Type having arguments with any Type
[英]Typescript: define a type as "any except type" without triggering errors?
我有一個適用於任何普通 JS object 的類型:
type Entity = {
[k: string]: any,
};
我逐漸將 TS 添加到我的代碼庫中,因此我允許隱式任何。 使用這種類型,我可以這樣做:
const user: Entity = ...;
user.name.includes(...);
但是,如果我想將它定義為任何沒有 object 或數組值的普通 JS object:
type Entity = {
[k: string]: string | number | boolean | null,
};
我得到: Property 'includes' does not exist on type 'string | number | boolean'.
Property 'includes' does not exist on type 'string | number | boolean'.
我也試過這個,不確定它是否有效 TS:
type Entity = {
[k: string]: Entity[k] extends Object ? never : Entity[k];,
};
但同樣的事情: Property 'includes' does not exist on type 'never'.
在這種情況下是否可以讓 TS 不拋出錯誤? 我希望它表現得好像 object 值的類型是any
。
除非有人想出一個非常聰明的方法來解決Object
和之前的any
not object
工作,我建議嘗試構建類似
type Entity = {
name?: string;
[key: string]: string | boolean | number | undefined;
}
type Entity = {
name?: string;
[key: string]: any;
}
希望您可以縮小您的類型。 與此同時,我會盡可能地提高精確度和安全性。 如果Entity
來自外部來源,那么您可能要考慮使用unknown
類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.