将字符串外部化到单独文件时的字符串替换
String substitution when strings are externalized to a separate file
我已经从我的代码中提取了所有字符串并将它们放入一个名为 constants.ts
..
的文件中
export class Constants {
public static API_URL = '/api/';
public static CREATE_CHILD_API_URL = Constants.API_URL + '%s' + '/create-child';
}
我可以使用 console.log
:
将值替换到字符串中
import { Constants } from '../common/constants';
console.log(Constants.CREATE_CHILD_API_URL, 'dummyId');
在控制台中生成:/api/dummyId/create-child
这是目标。
除了将结果存储在变量中供以后使用外,我如何做同样的事情?
有没有我可以使用的东西,它是本机的并且可以在现代浏览器上运行而无需引入库?
Template literals
似乎不适合用例,因为变量不会在我的常量文件中定义。
你最终会用这种方法犯错误。我宁愿推荐使用具有某些参数的函数,这些函数将通过在内部执行字符串插值来生成您需要的字符串:
export class Urls {
public static API_URL = '/api/';
public static CREATE_CHILD_API_URL =
(id: string) => `${Urls.API_URL}${id}/create-child`;
}
以后你就可以这样使用了:
import { Urls } from '../common/urls';
const forLaterUse = Urls.CREATE_CHILD_API_URL('dummyId');
console.log(forLaterUse);
我已经从我的代码中提取了所有字符串并将它们放入一个名为 constants.ts
..
export class Constants {
public static API_URL = '/api/';
public static CREATE_CHILD_API_URL = Constants.API_URL + '%s' + '/create-child';
}
我可以使用 console.log
:
import { Constants } from '../common/constants';
console.log(Constants.CREATE_CHILD_API_URL, 'dummyId');
在控制台中生成:/api/dummyId/create-child
这是目标。
除了将结果存储在变量中供以后使用外,我如何做同样的事情?
有没有我可以使用的东西,它是本机的并且可以在现代浏览器上运行而无需引入库?
Template literals
似乎不适合用例,因为变量不会在我的常量文件中定义。
你最终会用这种方法犯错误。我宁愿推荐使用具有某些参数的函数,这些函数将通过在内部执行字符串插值来生成您需要的字符串:
export class Urls {
public static API_URL = '/api/';
public static CREATE_CHILD_API_URL =
(id: string) => `${Urls.API_URL}${id}/create-child`;
}
以后你就可以这样使用了:
import { Urls } from '../common/urls';
const forLaterUse = Urls.CREATE_CHILD_API_URL('dummyId');
console.log(forLaterUse);