【问题标题】:Typescript Does Not Seem To Have Javasvript Array.create(...) FunctionTypescript 似乎没有 Javascript Array.create(...) 函数
【发布时间】:2020-06-23 11:14:01
【问题描述】:

我创建了一个 Vanilla Nativescript 项目,我可以执行以下操作: var arry = Array.create("byte",10);

但在类似的 TypeScript 项目中,Array.create(...) 函数似乎无法识别。

我尝试使用等效的:

var arry = new UintArray(10)

但似乎需要原始字节的 Android (Java) API 函数只接受使用 Array.create(...) 函数创建的数组。

如何在 TypeScript 中使用Array.create(...) 函数?

【问题讨论】:

  • 你是如何创建 Nativescript TypeScript 项目的?

标签: javascript arrays typescript nativescript typescript2.0


【解决方案1】:

我将把它留在这里(作为 CW 答案),以便其他 JavaScript 人员看到它并知道它已被覆盖,但看起来 Nativescript 有一个 Array.create 方法,用于从 JavaScript 代码创建 Java 数组。有关此问题的 Nativescript 答案,请参阅 Artyer's answer,这可能比这个更合适。


JavaScript 中没有标准的Array.create 方法。有 []new ArrayArray.ofArray.from 以及创建新数组的现有数组的各种方法(mapfilter),但没有 Array.create

let a;

// `[]`:
a = ["a", "b", "c"];
console.log(a);

// `new Array`:
a = new Array("a", "b", "c"); // NOT RECOMMENDED
console.log(a);

// `Array.of`:
a = Array.of("a", "b", "c");
console.log(a);

// `Array.from`:
a = Array.from("abc");
console.log(a);
.as-console-wrapper {
    max-height: 100% !important;
}

更多内容请关注MDN documentation

【讨论】:

  • 为什么不推荐第二种?
  • @Ifaruki - 有几个原因,但主要是因为new Array 有一把枪:new Array("a") 创建一个包含一个条目的数组,("a")。 new Array(1, 2, 3) 创建一个包含三个条目(123)的数组。但是new Array(3) 创建了一个 数组,其中length 设置为3(一个稀疏数组)。那是因为如果你只给new Array 一个参数,并且那个参数是一个数字,它就会被当作新数组的长度;如果你给它多个参数,或者一个不是数字类型的参数,那个/那些参数被用作填充数组的值。
【解决方案2】:

如果您使用的是 NativeScript,则需要使用以下方式安装 typescript 支持:

$ tns create my-app-name --template typescript  # Start a new project with typescript support
$ tns install typescript  # Add typescript support to an existing project

来自https://nativescript.org/using-typescript-with-nativescript-when-developing-mobile-apps/

【讨论】:

  • 我们知道 OP 没有这样做吗?他们说他们正试图在一个“TypeScript 项目”中做到这一点,这表明他们有。您是否通过执行上述操作检查了 Array.create 类型信息是否正确提供?不过,您似乎走在正确的轨道上……
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-09
  • 2016-09-02
  • 1970-01-01
相关资源
最近更新 更多