関数を返すように入力しようとしていますany
が、array
。は返しません。
このようなもの:
Not<any, any[]>
interface Specific {
name: string;
}
const makeOneCore = (): any => {
return {};
};
const makeManyCore = (): any[] => {
return [{}];
};
const makeOne = (): Specific => {
return makeOneCore();
};
const makeMany = (): Specific[] => {
return makeManyCore();
};
const makeManyShouldFail = (): Specific[] => {
return makeOneCore();
};
私は、入力したいmakeOneCore
それはとてもmakeManyShouldFail
それが試合をする必要があるため、typescriptですエラーになるany
ことが可能であるとしてarray
。
hello
有効であり、そうboom
でない方法を探しています。
type NotArray<T> = T extends Array<any> ? never: T;
type v = NotArray<Array<any>>;
const hello: v = {};
const boom: v = [];
console.log({ hello, boom });
このようなものを試してください
type NotArray<T> = T extends Array<any> ? never: T;
type A = NotArray<Array<any>>; // never
type B = NotArray<Array<string>>; // never
type C = NotArray<boolean>; // boolean
タイプnever
は他のタイプに割り当てることができます
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加