diff --git a/Library/Typings.d.ts b/Library/Typings.d.ts index 3d457b1..e6c7ee7 100644 --- a/Library/Typings.d.ts +++ b/Library/Typings.d.ts @@ -6,7 +6,7 @@ declare module 'accept-language' { /** * Define your supported languages. The first language will be your default language. */ - languages(languages: string[]): void; + languages(languages: readonly [string, ...string[]]): void; /** * Get matched language. If no match, the default language will be returned. diff --git a/Source/AcceptLanguage.ts b/Source/AcceptLanguage.ts index 9fb813d..690bc54 100644 --- a/Source/AcceptLanguage.ts +++ b/Source/AcceptLanguage.ts @@ -18,7 +18,7 @@ class AcceptLanguage { private defaultLanguageTag: string | null = null; - public languages(definedLanguages: string[]) { + public languages(definedLanguages: readonly [string, ...string[]]) { if (definedLanguages.length < 1) { throw new Error('No language tags defined. Provide at least 1 language tag to match.'); } diff --git a/Tests/Test.ts b/Tests/Test.ts index 0c7de2d..493f0d5 100644 --- a/Tests/Test.ts +++ b/Tests/Test.ts @@ -5,7 +5,7 @@ import AcceptLanguage from '../Source/AcceptLanguage'; import chai = require('chai'); const expect = chai.expect; -function createInstance(definedLanguages?: string[]) { +function createInstance(definedLanguages?: readonly [string, ...string[]]) { const al = AcceptLanguage.create(); if (definedLanguages) { al.languages(definedLanguages); @@ -16,7 +16,7 @@ function createInstance(definedLanguages?: string[]) { describe('Language definitions', () => { it('should throw when defined languages is empty', () => { const method = () => { - createInstance([]); + createInstance([] as any); }; expect(method).to.throw(); });