小编McM*_*ath的帖子

在TypeScript中描述一个深度嵌套的数组

如何在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中实现这一目标?

arrays types nested interface typescript

7
推荐指数
1
解决办法
1202
查看次数

JSON 中字段名称的最大长度

JSON 中字段名称的最大长度是多少?

例如,在下面的json文档中

{
    "myfield":"value"
}
Run Code Online (Sandbox Code Playgroud)

我可以将“myfield”设置为 100 个字符吗?

json

4
推荐指数
1
解决办法
2万
查看次数

javascript中的import*代表什么?

我正在研究使用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)

*对我来说是新的.

任何人都可以向我解释这种语法的含义及其工作原理吗?

node.js ecmascript-6 reactjs

2
推荐指数
1
解决办法
179
查看次数

标签 统计

arrays ×1

ecmascript-6 ×1

interface ×1

json ×1

nested ×1

node.js ×1

reactjs ×1

types ×1

typescript ×1