如何在TypeScript中递归声明此类型?
我要声明的是一个可以保存字符串的类型,或者一个返回字符串的函数,或者一个返回字符串的函数,等等 基本上是这样的,但是递归的,可能没有我现在拥有的5个函数的任意限制如何在TypeScript中递归声明此类型?,typescript,type-declaration,Typescript,Type Declaration,我要声明的是一个可以保存字符串的类型,或者一个返回字符串的函数,或者一个返回字符串的函数,等等 基本上是这样的,但是递归的,可能没有我现在拥有的5个函数的任意限制 类型NestedStringProvider= 串| (()=>字符串)| (()=>()=>字符串)| (()=>()=>()=>字符串)| (()=>()=>()=>()=>()=>字符串)| (()=>()=>()=>()=>()=>()=>字符串); 这样我就可以: let s:NestedStringProvider; s
类型NestedStringProvider=
串|
(()=>字符串)|
(()=>()=>字符串)|
(()=>()=>()=>字符串)|
(()=>()=>()=>()=>()=>字符串)|
(()=>()=>()=>()=>()=>()=>字符串);
这样我就可以:
let s:NestedStringProvider;
s=“foobar”//好啊
s=函数(){return()=>“string”};//好啊
s=1;//错误
我使用的是TypeScript 3.1.6。如果这有助于解决我的问题,我将准备升级。您可以简单地递归引用您的类型:
type NestedStringProvider =
| string
| (() => NestedStringProvider);