์๋ค ์,
typescript์์ rrule.js ํ์ผ์ ์ด๋ป๊ฒ ๊ฐ์ ธ์ฌ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
import 'rrule';
module.exports
๊ฐ true๋ก ํ๊ฐ๋์ด ์๋ํ์ง ์๋ ๊ฒ ๊ฐ์ผ๋ฏ๋ก ์ ์ญ ๋ฒ์๋ ์ฑ์์ง์ง ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๋ค๋ฅธ ์ข
๋ฅ์ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์๋ํ ๋:
import * as rrule from 'rrule';
๋๋ ์ด๊ฒ์ ์ปดํ์ผ ํ ๋ ์ป๋๋ค :
Error TS2307: Cannot find module 'rrule'.
๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์ด ์์ต๋๊น?
๋ค์ ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
http://jqfaq.com/how-to-use-external-js-in-typescript/
๋ด ts ํ์ผ์์ RRule์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ ์ ์์์ต๋๋ค(๋ด index.html ํ์ด์ง์ rrule.js๋ฅผ ํฌํจ์ํจ ํ).
// ํ์ผ form.ts
์ ์ธ var RRule: ๋ชจ๋;
๋ชจ๋ myapp.controllers {
class myClass {
constructor() {
var rule = RRule.fromString('FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13');
console.log(rule.toText());
}
}
}
์ด๊ฒ์ด ๋๊ตฐ๊ฐ๋ฅผ ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ด ๊ฒฝ์ฐ ๋ด๊ฐ ํ๋ ์ผ์ ํ์ดํ์ ์ ์ํ๋ ๊ฒ์
๋๋ค.
ํ์ดํ์ ํ์ผ ์ถ๊ฐ -> rrule.d.ts
rrule.d.ts ํ์ผ์ ๋ด์ฉ:
declare var RRule: any;
declare var RRuleSet: any;
declare var rrulestr: any;
์ํ๋ ๊ฒฝ์ฐ ํด๋น ์์ฑ์ ํ์ฅํ ์ ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ rrule.d.ts๋ฅผ ์์ ๋น index.d.ts์ ์ฐ๊ฒฐํฉ๋๋ค(๋๋ ์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋ d.ts๋ฅผ ์ฐธ์กฐํ๋ 1๊ฐ์ ํ์ผ๋ก ๊ทธ๋ฃนํํฉ๋๋ค)
index.d.ts:
/// <reference path="globals/rrule/rrule.d.ts" />
๊ทธ ํ์ ๋น์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค
RRule.fromString('FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13');
์ ์ํ์ง ์๊ณ
declare var RRule: any;
๋ค์ ๋์ฒ์.
์น์ ํ๋!
npm install @types/rrule
์คํํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ ๊ฒ ๊ฐ์ ธ์ฌ ์์์์ต๋๋ค.
import { RRule, RRuleSet } from "rrule";
@dennis2k ๊ทธ๋ฆฌ๊ณ
@uncledent ๋๋
var rrulestr = require('rrule').rrulestr
@dennis2k ๋ต๋ณ ๊ฐ์ฌ
Angular2/4์์ ์ด๋ฐ ์์ผ๋ก ํ ์ ์์ง๋ง ์์์ง๋ ์์ง๋ง ์๋ํฉ๋๋ค.
declare function require(name:string);
var rrulestr = require('rrule').rrulestr;
์ด ๋ฌธ์ ๋ ์ฃฝ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ถ๊ฐ ์ง์์ด ํ์ํ ๊ฒฝ์ฐ ์ ๋ฐ์ดํธํ์ญ์์ค!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
npm install @types/rrule
์คํํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ ๊ฒ ๊ฐ์ ธ์ฌ ์์์์ต๋๋ค.import { RRule, RRuleSet } from "rrule";