source

형식 스크립트의 문자열 보간, '자리 표시자'를 변수로 바꾸기

manycodes 2023. 7. 15. 10:20
반응형

형식 스크립트의 문자열 보간, '자리 표시자'를 변수로 바꾸기

저는 이 주제에 대해 충분한 답을 찾을 수 없을 것 같습니다. 그래서 저는 다음과 같은 질문을 하고 있습니다.

C#에서 다음과 같은 작업을 수행할 수 있습니다.

var text = "blah blah";
var strTest = String.Format("This is a {0}", text); //output: 'This is a blah blah'

Typescript에서 이 작업을 수행하려면 어떻게 해야 합니까?

용도:

environment.ts 파일에서 URL을 로드하고 있으며 이 문자열 URL에는 자리 표시자가 포함되어야 하며 서비스 계층에서 자리 표시자를 전달해야 하는 실제 매개 변수로 바꿉니다.

보다 훨씬 나은 템플릿 문자열 사용String.Format저는 그들이 나쁜 색인(자리 표시자) 문제를 겪지 않기 때문에 다음과 같이 생각합니다.

var text = "blah blah";
var strTest = `This is a ${text}`;
console.log(strTest);

전달해야 하는 변수의 이름을 모를 경우?

그런 다음 예를 들어 함수로 감싼다.

const gen = (text) => `This is a ${text}`;

익명의 제너레이터 기능을 사용하는 것이 좋습니다.environments.ts파일을 사용하면 필요한 변수를 전달하고 이 함수 안에 템플릿 문자열을 넣을 수 있습니다.이와 같은 것:

환경.ts

 export const thisIsA = (str: string) => `This is a ${str}`;

다른 파일:

import * as env from 'environments';

var text = "blah blah";
var strTest = env.thisIsA(text); //output: 'This is a blah blah'

localized-strings라고 하는 npm 패키지가 있는데, 이 패키지는 C# 방식으로 문자열 보간에 사용할 수 있는 formatString 메서드를 가지고 있습니다.

import LocalizedStrings, {LocalizedStringsMethods} from "localized-strings";

interface IStrings extends LocalizedStringsMethods{
}

const localizedStrings: IStrings  = new LocalizedStrings({en: {}});
const result = localizedStrings.formatString("This is a {0}", "Text").toString();
console.log(result);

여기에 더 많은 가 있습니다.

사용자 환경의 경우.ts:

export const str = "This is a {0} and this is {1}.";

런타임 중 어디서나 사용:

import * as env from 'environments';

console.log(env.str.replace('{0}', 'blah blah').replace('{1}', 'again a blah blah'));

언급URL : https://stackoverflow.com/questions/52196421/string-interpolation-in-typescript-replacing-placeholders-with-variables

반응형