在TypeScript和命名空间中使用Angular [英] Using Angular with TypeScript and Namespaces

查看:87
本文介绍了在TypeScript和命名空间中使用Angular的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在构建一个大型应用程序,并且正在尝试将TypeScript和Angular评估为要使用的基本技术.

I'm in the process of building a large-scale application and I'm trying to evaluate TypeScript and Angular as the base technologies to use.

不幸的是,一旦开始使用Angular,我在命名自己的TypeScript文件时就会遇到问题.

Unfortunately, I'm having an issue with namespacing my own TypeScript files once I begin using Angular.

英雄教程为例,试图使其与我看到自己的应用程序的结构相匹配.

Taking the example of the Heroes tutorial, I tried to make it match how I would see my own application being structured.

- app 
-- boot.ts

- Heroes
-- Components
--- HeroDetail.ts
--- HeroList.ts

-- Interfaces
--- IHero.ts

然后在此结构中,我尝试为每个逻辑区域使用名称空间以便对其进行分组.这导致IHero看起来像这样(例如):

Within this structure, I then attempted to use namespaces for each logical area in order to group them. This resulted in IHero looking like this (for example):

namespace Heroes.Interfaces
{
  export interface IHero
  {
    Id: number;
    Name: string;
  }
}

以这种结构构建项目效果很好,直到我尝试通过以下方式将Angular添加到混合中:import {Component} from 'angular2/core'; 发生这种情况时,文件将丢失对同一命名空间中其他代码的所有引用,并且无法使其发现它们.

Building the project in this structure works well until I attempt to add Angular into the mix by way of: import {Component} from 'angular2/core'; When this happens, the file loses all references to other code in the same namespace and there's no way to make it discover them.

我看过这个问题问了同样的问题.在那里,答案提到解决方法".由于这个原因,我认为这是可能的,但不仅如此,我还在想为什么它暂时没有呢?这是错误还是设计使然? 我一直在考虑在TS GitHub上进行开发,但是在沿这条路线走之前,我希望能有所了解.

I've seen this question asked about the same issue. There, the answer mentions "work arounds". For this reason I'm thinking it's POSSIBLE, but more than that I'm wondering why it ISN'T at the minute? Is this a bug or by design? I've been considering raising it on the TS GitHub but I would like to be a little better informed before going down that route.

感谢您的任何建议!

推荐答案

这是错误还是故意的?

Is this a bug or by design?

这是设计使然.如果使用文件模块,请不要使用名称空间. 每个文件已经是一个模块.您的整个项目都需要一个模块加载器.

This is by design. Don't use namespaces if you are using file modules. Each file is already a module. And your whole project needs a module loader.

阅读::Angular 2模块与JavaScript模块— Angular 2建筑文档

Read: Angular 2 Modules vs JavaScript Modules — Angular 2 Architectural Documentation

这篇关于在TypeScript和命名空间中使用Angular的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆