我将一些正在运行的JavaScript代码移动到TypeScript npm模块中以便重用我遇到了问题。我对imports语句进行了以下更改,以使代码再次运行:
import React, { Component } from "react"
成了(安装了React TypeScript类型):
import * as React from 'react';
import { Component } from 'react';
Helmet有TypeScript类型,但有问题,所以我将此格式用于没有类型的库:
import Helmet from "react-helmet"
成为:
const Helmet = require('react-helmet');
然后有时我需要调用默认值:
import TopBarProgressIndicator from "react-topbar-progress-indicator"
变为:
const TopBarProgressIndicator = require('react-topbar-progress-indicator').default;
我是否可以进行任何TypeScript配置更改(当前或计划),因此这是不必要的,或者更好的方法来执行此操作,因为它耗时且容易出错?我知道tsconfig的allowJs标志,它似乎处理.js
个文件,但我希望它是一个.ts
文件。我目前正在使用TypeScript 1.8.10和webpack。
答案 0 :(得分:0)
我的项目中通常有一个文件用于环境声明(我称之为declarations.d.ts
) - 如果我使用的库没有定义类型,我只需添加一个存根定义在该文件中导出any
值。
declare module "react-helmet" {
var _temp: any;
export = _temp;
}
这将允许您使用import * as Helmet from "react-helmet"
导入模块,就像您已经使用React一样。
有一个planned update to TypeScript允许您使用更小的语法执行此操作。它看起来像这样:
declare module "react-helmet";