我要声明的是可以容纳字符串的类型,或者返回字符串的函数,或者返回返回字符串的函数的函数,等等。
基本上是这样的,但是递归并且可能没有我现在拥有的5个函数的任意限制。
type NestedStringProvider =
string |
(() => string) |
(() => () => string) |
(() => () => () => string) |
(() => () => () => () => string) |
(() => () => () => () => () => string);
我可以这样做:
let s: NestedStringProvider;
s = "foobar"; // ok
s = function () { return () => "string" }; // ok
s = 1; // error
我正在使用TypeScript 3.1.6。如果可以解决我的问题,我将准备升级。
答案 0 :(得分:0)
您可以简单地递归引用您的类型:
type NestedStringProvider =
| string
| (() => NestedStringProvider);