Passing further arguments with tagged template literals

后端 未结 1 963
小鲜肉
小鲜肉 2021-01-18 02:39

I\'m working with styled-components and generating components using their tagged template literal syntax such as:

const Button = styled.button`
  background-         


        
相关标签:
1条回答
  • 2021-01-18 03:06

    Tagged template literals are no magic, you just need to return another function from your media(12) call:

    function media(twelve) {
      return function(stringParts, ...interpolationValues) {
        return …
      }
    }
    

    or using arrow functions

    const media = (twelve) => (stringParts, ...interpolationValues) => …;
    

    to be called as

    media(12)`firstPart ${13} secondPart`
    // or equvialently
    media(12)(["firstPart ", " secondPart"], 13)
    

    However, if you don't need to do any interpolation but just want to receive a string, it might be easier to write a function with the parameters

    function media(twelve, string) {
      return …;
    }
    

    and call it as

    media(12, `
      templateString
    `)
    
    0 讨论(0)
提交回复
热议问题