将js模块导入typescript文件(normalizr)

时间:2017-05-22 13:56:47

标签: typescript normalizr

我正在尝试使用normalizr库作为我的打字稿项目。所以我定义了以下实体模式(js格式)

//schema.js
import { Schema, Entity } from "normalizr";
export const user = new Schema.Entity("users", options = { idAttribute: "userId" });

并尝试在.ts文件中使用它

//app.ts
import { user } from "./schemas";

导致错误:

  

模块./schemas被解析为“schemas.js”但是“allowJs”参数   未设置

如果我在tsconfig.json中设置allowJs = true,则会发生错误:

  

无法写入文件“... / schemas.js”,因为它会覆盖输入   文件

我还使用了this approach

//schemas.ts
import * as normalizr from 'normalizr';
export const user = new normalizr.Schema.Entity("users");

但又出现了错误:

  

类型'typeof'... / normalizr / index

上不存在属性架构

我该如何解决?

Visual Studio 2017,ts v.2.2.2

1 个答案:

答案 0 :(得分:1)

查看normalizr的类型定义,Entity类位于schema命名空间内(使用小写s):

import * as normalizr from 'normalizr';
export const user = new normalizr.schema.Entity("users");