【问题标题】:Ionic 2 cannot find namespace for @types/packageIonic 2 找不到 @types/package 的命名空间
【发布时间】:2017-12-22 18:10:35
【问题描述】:

使用 Ionic 2 我正在尝试为 FHIR 添加 Typescript 定义文件。在documentation 之后,我运行了以下命令:

npm install --save @types/fhir

毫无怨言地执行。我可以看到我的node_modules @types文件夹下添加的Typescript定义文件:

当我引用组件文件中的类型时,编辑器不会抱怨。但是,当我运行ionic serve 时,终端中显示错误:

找不到命名空间'fhir'

我的 IDE 是我尝试重新启动的 Visual Studio Code。我已尝试删除并重新安装这些类型。

import { Component, OnInit } from '@angular/core';
import { NavController } from 'ionic-angular';

import {CreateReferralPage} from '../create-referral/create-referral';
import { HomeProvider } from "../../providers/home/home";

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage implements OnInit{

  patient : fhir.Patient = {};

  constructor(public navCtrl: NavController, private homeProvider: HomeProvider) {

  }

  ngOnInit(){
    this.homeProvider.getPatientDetails().subscribe((patient : fhir.Patient) => {
      this.patient = patient;
    })
  }
}

【问题讨论】:

  • 你是如何导入和使用它的?
  • 我已经添加了我如何使用这些类型。我不需要导入类型,因为它们是通过 npm 安装的。默认情况下,任何封闭文件夹的 node_modules/@types 中的包都被认为是可见的。

标签: typescript ionic2


【解决方案1】:

我相信您应该在 npm 包中拥有 index.d.ts 的编译 Javascript 版本。在开发过程中,您不会收到任何错误,因为 Typescript 使用在 TS 文件中找到的原始定义,但是每当您启动应用程序时,它都会使用在您的 npm 文件夹中找不到的已编译 JS 文件,因此会引发错误。

【讨论】:

    猜你喜欢
    • 2018-01-01
    • 2011-05-11
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 2012-07-14
    相关资源
    最近更新 更多