配列や[[オブジェクト (JavaScript)|オブジェクト]]を[[分割代入 (JavaScript)|分割代入]]したとき、残りの項目を割り当てるために使う表現。以下の`...restXs`と`...restObj`がそれにあたる。 ```ts const xs = [1, 2, 3, 4, 5] const obj = {a: 1, b: 2, c: 3, d: 4, e: 5} const [e1, e2, ...restXs] = xs // ^? const restXs: number[] const {a, b, ...restObj} = obj // ^? const restObj: { c: number; d: number; e: number; } console.log(restXs) // [3, 4, 5] console.log(restObj) // {"c": 3, "d": 4, "e": 5} ``` <button class="playground"><a href="https://www.typescriptlang.org/play?#code/MYewdgzgLgBAHhGBeGBtAjAGhgJmwZmwBZsBWAXQChRJYQAjAK2RgG8BDALhixnu7wxg3QjAAm3EjACm3UgF9K1cNDTTe0wQDodAJ2nQAGhHIsElAPQWYN23fswAegH5ltNu2z1sOrfugA8kzyLAyMltYOUS5KNBAgADbSWgkgAOYAFP5QxgCUEWiiUhRu8Ukp6VkGUEGM+VZsAETAjSLYjWKtMFKN0l0KQA">Playground</a></button> > [!attention] > [[スプレッド構文 (JavaScript)|スプレッド構文]]や[[残余引数 (JavaScript)|残余引数]]と勘違いしやすいので注意。