如何在TypeScript中定义描述深层嵌套数组的类型或接口?
例如,假设我正在编写一个函数来测试针对任意数量模式的路径.
function match(path: string, matcher: Matcher): boolean { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
的Matcher
类型可以是任何以下的:
string
RegExp
Matcher[]
(注意自我引用)换句话说,编译器应该接受以下内容:
match('src/index.js', 'lib/**/*');
match('src/index.js', /\/node_modules\//);
match('src/index.js', ['src/**/*', /\.js$/]);
match('src/index.js', ['src/**/*', [/\.js$/, ['*.ts']]]);
Run Code Online (Sandbox Code Playgroud)
但是以下应该会产生编译器错误:
match('src/index.js', {'0': 'src/**/*'}); // Compiler Error!!!
match('src/index.js', ['src/**/*', true]); // Compiler Error!!!
match('src/index.js', ['src/**/*', [/\.js$/, [3.14]]]); // Compiler Error!!!
Run Code Online (Sandbox Code Playgroud)
有没有办法在TypeScript中实现这一目标?
JSON 中字段名称的最大长度是多少?
例如,在下面的json文档中
{
"myfield":"value"
}
Run Code Online (Sandbox Code Playgroud)
我可以将“myfield”设置为 100 个字符吗?
我正在研究使用React Redux构建的应用程序.在代码中,有一个这样的语句:
import * as test from 'util/test'
Run Code Online (Sandbox Code Playgroud)
我知道这样的陈述:
import test from 'util/test'
Run Code Online (Sandbox Code Playgroud)
这样的陈述:
import {test} from 'util/test'
Run Code Online (Sandbox Code Playgroud)
但*
对我来说是新的.
任何人都可以向我解释这种语法的含义及其工作原理吗?
arrays ×1
ecmascript-6 ×1
interface ×1
json ×1
nested ×1
node.js ×1
reactjs ×1
types ×1
typescript ×1