Typescript - RequireJS 在 require.config 中指定路径
Typescript - RequireJS specify pathing in require.config
我正在现有应用程序中创建一组新网页。我们开始实现Typescript+RequireJS
我想弄清楚如何在使用名称而不是路径的打字稿中进行 require 调用。所有路径都将在 require.config
中指定
例如我的 main.ts
require.config({
baseUrl: '/Scripts/Modules',
paths: {
'baseObject' : 'objects/base',
'inheritedObject' : 'objects/some/other/paths/inheritedObject'
});
这里是baseObject.ts:
class BaseObject {
initialize(): void {
}
fingerprint: string;
}
export = BaseObject;
现在我想在 inheritedObject.ts 中做的是:
import baseObj = require('baseObject');
class InheritedObject extends baseObj{
//Object full of stuff
}
因为我在 require.config 中指定了路径,所以我不想在 require 调用中使用它。如何仅使用提供的字符串(而不是路径!)让 Typescript 工作?
I am trying to figure out how I can do a require call in typescript that uses a name rather than a path
import baseObj = require('baseObject');
目前将不起作用(免责声明:如果您不想手动创建 .d.ts
)。您必须使用相对路径。您的 IDE 可以提供帮助:https://github.com/TypeStrong/atom-typescript#relative-paths
注意:这种基于基本路径的解决方案即将推出:https://github.com/Microsoft/TypeScript/issues/2338
所以我想通了。这是我所做的(特别注意文件名与 class 名称。):
File: /Objects/baseObject.ts
class BaseObject {
initialize(): void {
}
fingerprint: string;
}
export = BaseObject;
接下来我们有:
File:/Objects/Objects.d.ts
import baseObjInstance = require("baseObject");
export module "baseObject"{
export = baseObjInstance;
}
和实施:
File:/Controllers/baseController.ts
import baseObj = require('baseObject');
class BaseController extends baseObj{
}
export = BaseController;
这似乎允许注册一个定义,因此当您 require('baseObject')
时打字稿可以理解该定义。我相信我的 require 语句是路径,它们只是对本地目录执行此操作。这允许我在需求配置中指定我的路径,我只需要确保匹配需求配置中的模块导出语句外壳。即
require.config({
paths: {
"baseObject": 'Objects/baseObject'
}
})
唯一的缺点是我必须为每个对象定义添加一个导出语句。
我正在现有应用程序中创建一组新网页。我们开始实现Typescript+RequireJS
我想弄清楚如何在使用名称而不是路径的打字稿中进行 require 调用。所有路径都将在 require.config
中指定例如我的 main.ts
require.config({
baseUrl: '/Scripts/Modules',
paths: {
'baseObject' : 'objects/base',
'inheritedObject' : 'objects/some/other/paths/inheritedObject'
});
这里是baseObject.ts:
class BaseObject {
initialize(): void {
}
fingerprint: string;
}
export = BaseObject;
现在我想在 inheritedObject.ts 中做的是:
import baseObj = require('baseObject');
class InheritedObject extends baseObj{
//Object full of stuff
}
因为我在 require.config 中指定了路径,所以我不想在 require 调用中使用它。如何仅使用提供的字符串(而不是路径!)让 Typescript 工作?
I am trying to figure out how I can do a require call in typescript that uses a name rather than a path
import baseObj = require('baseObject');
目前将不起作用(免责声明:如果您不想手动创建 .d.ts
)。您必须使用相对路径。您的 IDE 可以提供帮助:https://github.com/TypeStrong/atom-typescript#relative-paths
注意:这种基于基本路径的解决方案即将推出:https://github.com/Microsoft/TypeScript/issues/2338
所以我想通了。这是我所做的(特别注意文件名与 class 名称。):
File: /Objects/baseObject.ts
class BaseObject {
initialize(): void {
}
fingerprint: string;
}
export = BaseObject;
接下来我们有:
File:/Objects/Objects.d.ts
import baseObjInstance = require("baseObject");
export module "baseObject"{
export = baseObjInstance;
}
和实施:
File:/Controllers/baseController.ts
import baseObj = require('baseObject');
class BaseController extends baseObj{
}
export = BaseController;
这似乎允许注册一个定义,因此当您 require('baseObject')
时打字稿可以理解该定义。我相信我的 require 语句是路径,它们只是对本地目录执行此操作。这允许我在需求配置中指定我的路径,我只需要确保匹配需求配置中的模块导出语句外壳。即
require.config({
paths: {
"baseObject": 'Objects/baseObject'
}
})
唯一的缺点是我必须为每个对象定义添加一个导出语句。